package com.fire.control.system.config.socketIo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.corundumstudio.socketio.AuthorizationListener;
import com.corundumstudio.socketio.HandshakeData;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.annotation.SpringAnnotationScanner;

@Configuration
public class SocketIoConfig {

	@Value("${wss.server.host}")  
    private String host;
  
    @Value("${wss.server.port}")  
    private Integer port;  
	
    @Bean  
    public SocketIOServer socketIOServer()   
    {  
    	com.corundumstudio.socketio.Configuration config = new com.corundumstudio.socketio.Configuration();  
        config.setHostname(host);
        config.setPort(port);
        //该处可以用来进行身份验证  
        config.setAuthorizationListener(new AuthorizationListener() {  
            @Override  
            public boolean isAuthorized(HandshakeData data) {  
                //http://localhost:8081?username=test&password=test  
                //例如果使用上面的链接进行connect，可以使用如下代码获取用户密码信息，本文不做身份验证  
            	//String username = data.getSingleUrlParam("username");  
            	//String password = data.getSingleUrlParam("password");  
                return true;  
            }  
        });
        
        final SocketIOServer server = new SocketIOServer(config);  
        return server;  
    }  
      
    @Bean  
    public SpringAnnotationScanner springAnnotationScanner(SocketIOServer socketServer) {  
        return new SpringAnnotationScanner(socketServer);  
    }  
    
}
